package org.jeecg.modules.storage.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.AutoRecordLog;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @Description: 入库通知单原料单
 * @Author: jeecg-boot
 * @Date:   2024-06-26
 * @Version: V1.0
 */
@ApiModel(value="buss_storage_notice_material对象", description="入库通知单原料单")
@Data
@TableName("buss_storage_notice_material")
@AutoRecordLog(value = 1,existParent = true,parentFiled="noticeId",parentTable="buss_storage_notice")
public class BussStorageNoticeMaterial implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
	/**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
	/**采购明细id*/
	@Excel(name = "采购明细id", width = 15)
    @ApiModelProperty(value = "采购明细id")
    private String procurementDetailId;
	/**原料id*/
	@Excel(name = "原料id", width = 15)
    @ApiModelProperty(value = "原料id")
    private String materialId;
	/**原发数量*/
	@Excel(name = "原发数量", width = 15)
    @ApiModelProperty(value = "原发数量")
    private java.math.BigDecimal originalNum;
	/**实际数量*/
	@Excel(name = "实际数量", width = 15)
    @ApiModelProperty(value = "实际数量")
    private java.math.BigDecimal actualNum;
	/**物料批号*/
	@Excel(name = "物料批号", width = 15)
    @ApiModelProperty(value = "物料批号")
    private String materialLotNum;
	/**生产日期*/
	@Excel(name = "生产日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "生产日期")
    private Date createDate;
	/**限用日期*/
	@Excel(name = "限用日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "限用日期")
    private Date expiryDate;
	/**通知id*/
    @ApiModelProperty(value = "通知id")
    private String noticeId;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
	/**采购编号*/
	@Excel(name = "采购编号", width = 15)
    @ApiModelProperty(value = "采购编号")
    private String procurementCode;
	/**排产单号*/
	@Excel(name = "排产单号", width = 15)
    @ApiModelProperty(value = "排产单号")
    private String schedulingCode;
	/**辅助数量*/
	@Excel(name = "辅助数量", width = 15)
    @ApiModelProperty(value = "辅助数量")
    private java.math.BigDecimal supportNum;
	/**辅助单位*/
	@Excel(name = "辅助单位", width = 15)
    @ApiModelProperty(value = "辅助单位")
    private String supportUnit;
	/**仓位id*/
	@Excel(name = "仓位id", width = 15)
    @ApiModelProperty(value = "仓位id")
    private String erpLocationId;
	/**批次号*/
	@Excel(name = "批次号", width = 15)
    @ApiModelProperty(value = "批次号")
    private String batchNum;
	/**入库日期*/
	@Excel(name = "入库日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "入库日期")
    private Date warehouseDate;
	/**状态*/
	@Excel(name = "状态", width = 15)
    @ApiModelProperty(value = "状态")
    private Integer status;

    @ApiModelProperty(value = "供应商id")
    private String supplierId;

    @ApiModelProperty(value = "处理意见")
    private String handlingComments;

    @ApiModelProperty(value = "行项目")
    private String rowNum;

    @JsonIgnore
    @ApiModelProperty(value = "日志时间")
    private String logtime ;

    /**
     * 父类日志时间-方便历史搜索
     */
    @JsonIgnore
    @ApiModelProperty(value = "日志时间")
    private String parentLogtime;

    @Dict(dicCode = "inspection_results")
    @ApiModelProperty(value = "质检状态")
    private String qcStatus;

    @ApiModelProperty(value = "版本号")
    @Version
    private Integer version;

    @ApiModelProperty(value = "入库单编号")
    private String noticeCode;

    @ApiModelProperty(value = "仓库编号")
    private String erpWarehouseCode;

    @ApiModelProperty(value = "库位编号")
    private String erpLocationCode;

    @Dict(dicCode = "erp_production_workshop,name,id")
    @ApiModelProperty(value = "生产车间")
    private String workshop;

}
